import cenpy
import pandas as pd
import geopandas as gpd
import os
import folium
import matplotlib
import numpy as np
import re
#settings
pd.options.display.max_rows = 9999 
pd.options.display.max_colwidth = 100
pd.set_option('display.max_columns', None)
#change current directory to project folder
os.chdir("C:/Users/Gabriel/Desktop/PYTHON FINAL")
#colors below, in order: darkblue,black,textonsite,spring creek light blue, spring creek green,
nehemiah_colors = ['#006578','#231f20', '#006579', '#9fc7dc', '#26b797']
#set crs
crs= "ESRI:102718"
#load data for analysis
#MapPluto GEOGRAPHIC COORDINATE REFERENCE GCS_North_American_1983 & PROJECTION NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet

#zipfile = "zip:///Users/Gabriel/Desktop/PYTHON FINAL/data/MapPLuto_NYC/nyc_mappluto_23v3_shp.zip"
#nyc_mappluto = gpd.read_file(zipfile)
#ensure that it is a geopandas dataframe and that identifiers are strings

#nyc_mappluto =  gpd.GeoDataFrame(nyc_mappluto)

# Save GeoDataFrame to Shapefile
#output_file = "/Users/Gabriel/Desktop/PYTHON FINAL/data/MapPLuto_NYC/nyc_mappluto.shp"
#nyc_mappluto.to_file(output_file)
#Read shapefile
nyc_mappluto = gpd.read_file("/Users/Gabriel/Desktop/PYTHON FINAL/data/MapPLuto_NYC/nyc_mappluto.shp")
nyc_mappluto.info()
# save geodatafram as GEOJSON for faster loading in the future

#Get the current working directory
current_directory = os.getcwd()

# Save GeoDataFrame to Shapefile
#output_file = "/Users/Gabriel/Desktop/PYTHON FINAL/data/MapPLuto_NYC/nyc_mappluto.shp"
#nyc_mappluto.to_file(output_file)
#easier computing to load it in
#nyc_mappluto = gpd.GeoDataFrame(gpd.read_file(r"./nyc_mappluto.geojson"), geometry='geometry')
# Convert specific columns to string type - prep for merge (didnt work, merged by address instead)
columns_to_convert = ['Borough', 'Block', 'Lot']
nyc_mappluto[columns_to_convert] = nyc_mappluto[columns_to_convert].astype(str)

nyc_mappluto.info()
<class 'geopandas.geodataframe.GeoDataFrame'>
RangeIndex: 856819 entries, 0 to 856818
Data columns (total 96 columns):
 #   Column             Non-Null Count   Dtype   
---  ------             --------------   -----   
 0   Borough            856819 non-null  object  
 1   Block              856819 non-null  object  
 2   Lot                856819 non-null  object  
 3   CD                 856819 non-null  int64   
 4   BCT2020            856796 non-null  object  
 5   BCTCB2020          856796 non-null  object  
 6   CT2010             856796 non-null  object  
 7   CB2010             856796 non-null  object  
 8   SchoolDist         856233 non-null  object  
 9   Council            856819 non-null  int64   
 10  ZipCode            856819 non-null  int64   
 11  FireComp           856217 non-null  object  
 12  PolicePrct         856819 non-null  int64   
 13  HealthCent         856819 non-null  int64   
 14  HealthArea         856819 non-null  int64   
 15  Sanitboro          856032 non-null  object  
 16  SanitDistr         856032 non-null  object  
 17  SanitSub           855910 non-null  object  
 18  Address            856819 non-null  object  
 19  ZoneDist1          856806 non-null  object  
 20  ZoneDist2          19725 non-null   object  
 21  ZoneDist3          214 non-null     object  
 22  ZoneDist4          13 non-null      object  
 23  Overlay1           74429 non-null   object  
 24  Overlay2           176 non-null     object  
 25  SPDist1            105431 non-null  object  
 26  SPDist2            299 non-null     object  
 27  SPDist3            0 non-null       float64 
 28  LtdHeight          3047 non-null    object  
 29  SplitZone          856806 non-null  object  
 30  BldgClass          856472 non-null  object  
 31  LandUse            854201 non-null  object  
 32  Easements          856819 non-null  int64   
 33  OwnerType          34689 non-null   object  
 34  OwnerName          856454 non-null  object  
 35  LotArea            856819 non-null  int64   
 36  BldgArea           856819 non-null  int64   
 37  ComArea            856819 non-null  int64   
 38  ResArea            856819 non-null  int64   
 39  OfficeArea         856819 non-null  int64   
 40  RetailArea         856819 non-null  int64   
 41  GarageArea         856819 non-null  int64   
 42  StrgeArea          856819 non-null  int64   
 43  FactryArea         856819 non-null  int64   
 44  OtherArea          856819 non-null  int64   
 45  AreaSource         856471 non-null  object  
 46  NumBldgs           856819 non-null  int64   
 47  NumFloors          856819 non-null  float64 
 48  UnitsRes           856819 non-null  int64   
 49  UnitsTotal         856819 non-null  int64   
 50  LotFront           856819 non-null  float64 
 51  LotDepth           856819 non-null  float64 
 52  BldgFront          856819 non-null  float64 
 53  BldgDepth          856819 non-null  float64 
 54  Ext                796133 non-null  object  
 55  ProxCode           856471 non-null  object  
 56  IrrLotCode         856471 non-null  object  
 57  LotType            856471 non-null  object  
 58  BsmtCode           856471 non-null  object  
 59  AssessLand         856819 non-null  float64 
 60  AssessTot          856819 non-null  float64 
 61  ExemptTot          856819 non-null  float64 
 62  YearBuilt          856819 non-null  int64   
 63  YearAlter1         856819 non-null  int64   
 64  YearAlter2         856819 non-null  int64   
 65  HistDist           32490 non-null   object  
 66  Landmark           1448 non-null    object  
 67  BuiltFAR           856819 non-null  float64 
 68  ResidFAR           856819 non-null  float64 
 69  CommFAR            856819 non-null  float64 
 70  FacilFAR           856819 non-null  float64 
 71  BoroCode           856819 non-null  int64   
 72  BBL                856819 non-null  float64 
 73  CondoNo            856819 non-null  int64   
 74  Tract2010          856796 non-null  object  
 75  XCoord             856819 non-null  int64   
 76  YCoord             856819 non-null  int64   
 77  ZoneMap            856815 non-null  object  
 78  ZMCode             15618 non-null   object  
 79  Sanborn            856328 non-null  object  
 80  TaxMap             856328 non-null  object  
 81  EDesigNum          9869 non-null    object  
 82  APPBBL             856819 non-null  float64 
 83  APPDate            95442 non-null   object  
 84  PLUTOMapID         856819 non-null  object  
 85  FIRM07_FLA         34461 non-null   object  
 86  PFIRM15_FL         65527 non-null   object  
 87  Version            856819 non-null  object  
 88  DCPEdited          41784 non-null   object  
 89  Latitude           856819 non-null  float64 
 90  Longitude          856819 non-null  float64 
 91  Notes              0 non-null       float64 
 92  Shape_Leng         856819 non-null  float64 
 93  Shape_Area         856819 non-null  float64 
 94  geometry           856819 non-null  geometry
 95  Parcel Identifier  856819 non-null  object  
dtypes: float64(20), geometry(1), int64(27), object(48)
memory usage: 627.6+ MB

#convert borough abbreviation to borough code that matches nehemiahs
converted_borough_code_dictionary = {"SI":"50","MN":"10", "BX":"20", "BK":"30", "QN":"40"}

#replacing the borough column values using the dictionary

nyc_mappluto["Borough"] = nyc_mappluto['Borough'].replace( converted_borough_code_dictionary)


nyc_mappluto.head(n=10)
Borough Block Lot CD BCT2020 BCTCB2020 CT2010 CB2010 SchoolDist Council ZipCode FireComp PolicePrct HealthCent HealthArea Sanitboro SanitDistr SanitSub Address ZoneDist1 ZoneDist2 ZoneDist3 ZoneDist4 Overlay1 Overlay2 SPDist1 SPDist2 SPDist3 LtdHeight SplitZone BldgClass LandUse Easements OwnerType OwnerName LotArea BldgArea ComArea ResArea OfficeArea RetailArea GarageArea StrgeArea FactryArea OtherArea AreaSource NumBldgs NumFloors UnitsRes UnitsTotal LotFront LotDepth BldgFront BldgDepth Ext ProxCode IrrLotCode LotType BsmtCode AssessLand AssessTot ExemptTot YearBuilt YearAlter1 YearAlter2 HistDist Landmark BuiltFAR ResidFAR CommFAR FacilFAR BoroCode BBL CondoNo Tract2010 XCoord YCoord ZoneMap ZMCode Sanborn TaxMap EDesigNum APPBBL APPDate PLUTOMapID FIRM07_FLA PFIRM15_FL Version DCPEdited Latitude Longitude Notes Shape_Leng Shape_Area geometry Parcel Identifier
0 10 0002 0001 101 1000900 10009001022 9 1025 02 1 10004 L015 1 15 7700 1 01 1B 4 SOUTH STREET M1-4 NaN NaN NaN NaN NaN LM NaN NaN NaN N Y7 07 0 C NYC DEPARTMENT OF SMALL BUSINESS SERVICES 209215 280000 280000 0 0 0 0 0 0 280000 2 1 5.0 0 1 314.28 564.84 268.0 210.0 N 1 Y 2 0 18818100.0 31203000.0 31203000.0 1908 2006 2006 Individual Landmark NaN 1.34 0.0 2.0 6.5 1 1.000020e+09 0 0009 980670 194440 12b NaN 101N100 10101 NaN 1.000020e+09 08/07/2012 1 1 1 23v3 t 40.700369 -74.012911 NaN 0.0 100824.967451 POLYGON ((980609.551 194220.421, 980608.726 194221.934, 980606.237 194229.403, 980604.992 194235... 1000020001
1 10 0002 0002 101 1000900 10009001022 9 1025 02 1 10004 L015 1 15 7700 1 01 1B 10 SOUTH STREET C4-6 NaN NaN NaN NaN NaN LM NaN NaN NaN N H5 05 0 C 10 SOUTH STREET LLC 191502 157426 10940 0 0 0 0 0 0 10940 2 1 5.0 0 2 311.61 555.84 205.0 270.0 N 0 Y 2 0 18787500.0 25020000.0 25020000.0 1900 2001 0 NaN INDIVIDUAL LANDMARK 0.82 10.0 3.4 10.0 1 1.000020e+09 0 0009 981037 194506 12b NaN 11N 100 10101 NaN 1.000020e+09 08/07/2012 1 1 1 23v3 NaN 40.700550 -74.011588 NaN 0.0 87244.251304 POLYGON ((980795.371 194736.414, 981094.081 194825.144, 981136.781 194686.094, 981164.268 194694... 1000020002
2 10 0002 0003 101 1000900 10009000001 9 0001 NaN 1 0 NaN 0 0 0 NaN NaN NaN MARGINAL STREET C4-6 NaN NaN NaN NaN NaN LM NaN NaN NaN N Y7 07 0 C NYC DEPARTMENT OF SMALL BUSINESS SERVICES 38800 7500 7500 0 0 0 0 0 0 7500 2 1 1.0 0 0 91.90 564.56 50.0 75.0 NaN 0 N 2 5 735750.0 796950.0 796950.0 1900 0 0 NaN NaN 0.19 10.0 3.4 10.0 1 1.000020e+09 0 0009 981224 194590 12b NaN 101N100 10101 NaN 1.000020e+09 08/07/2012 1 1 1 23v3 t 40.700781 -74.010913 NaN 0.0 4362.203252 MULTIPOLYGON (((981176.547 194654.257, 981179.144 194654.493, 981183.812 194637.066, 981181.986 ... 1000020003
3 10 0004 7501 101 1000900 10009001020 9 1019 02 1 10004 L015 1 15 7700 1 01 1B 1 WATER STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N RC 05 0 NaN ONE NY PLAZA CO LLC 111382 1888126 1888126 0 1848626 39500 0 0 0 0 2 1 50.0 0 63 341.99 290.52 308.0 210.0 NaN 0 Y 0 5 47407500.0 224384391.0 0.0 1969 0 0 NaN NaN 16.95 10.0 15.0 15.0 1 1.000048e+09 835 0009 980917 195090 12b NaN 101S001 10101 NaN 1.000040e+09 12/03/1993 1 1 1 23v3 NaN 40.702153 -74.012021 NaN 0.0 116801.092518 POLYGON ((980744.311 195176.547, 980768.259 195194.086, 980795.044 195212.723, 980832.387 195236... 1000047501
4 10 0007 0027 101 1000900 10009001015 9 1016 02 1 10004 L015 1 15 7700 1 01 1B 30 WATER STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N K2 05 0 NaN PH WATER STREET LLC 1019 3632 3632 0 0 3632 0 0 0 0 2 1 4.5 0 2 18.92 52.83 19.0 53.0 N 3 Y 5 2 229500.0 583200.0 0.0 1828 0 0 Fraunces Tavern Block Historic District NaN 3.56 10.0 15.0 15.0 1 1.000070e+09 0 0009 981194 195504 12b NaN 101S002 10101 NaN 0.000000e+00 NaN 1 1 1 23v3 t 40.703289 -74.011022 NaN 0.0 1196.360370 POLYGON ((981177.774 195531.768, 981195.992 195537.237, 981211.580 195476.632, 981193.535 195470... 1000070027
5 10 0007 0028 101 1000900 10009001015 9 1016 02 1 10004 L015 1 15 7700 1 01 1B 28 WATER STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N K4 04 0 NaN MAYIM MGMT LLC 769 4104 4104 0 1026 3078 0 0 0 0 2 1 4.5 0 3 19.00 53.92 19.0 54.0 N 3 Y 5 2 247500.0 370800.0 0.0 1828 0 0 Fraunces Tavern Block Historic District NaN 5.34 10.0 15.0 15.0 1 1.000070e+09 0 0009 981178 195493 12b NaN 101S002 10101 NaN 0.000000e+00 NaN 1 1 1 23v3 t 40.703259 -74.011080 NaN 0.0 1007.979523 POLYGON ((981176.595 195508.508, 981172.813 195523.703, 981169.883 195522.829, 981168.361 195528... 1000070028
6 10 0007 0029 101 1000900 10009001015 9 1016 02 1 10004 L015 1 15 7700 1 01 1B 26 WATER STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N P7 08 0 NaN SONS OF THE REVOLUTION STATE OF NY 833 4800 4800 0 0 1600 0 800 0 2400 2 1 5.0 0 2 19.00 41.00 19.0 39.0 N 3 Y 5 2 132750.0 465300.0 279180.0 1828 0 0 Fraunces Tavern Block Historic District NaN 5.76 10.0 15.0 15.0 1 1.000070e+09 0 0009 981160 195488 12b NaN 101S002 10101 NaN 0.000000e+00 NaN 1 1 1 23v3 t 40.703246 -74.011145 NaN 0.0 1063.856582 POLYGON ((981171.915 195514.664, 981169.883 195522.829, 981172.813 195523.703, 981176.595 195508... 1000070029
7 10 0007 0030 101 1000900 10009001015 9 1016 02 1 10004 L015 1 15 7700 1 01 1B 24 WATER STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N P7 08 0 NaN SONS OF THE REVOLUTION 1057 6045 6045 0 0 2016 0 858 0 3171 2 1 5.0 0 2 27.92 35.75 28.0 36.0 N 3 Y 5 2 179550.0 742500.0 445500.0 1863 0 0 Fraunces Tavern Block Historic District NaN 5.72 10.0 15.0 15.0 1 1.000070e+09 0 0009 981137 195473 12b NaN 101S002 10101 NaN 0.000000e+00 NaN 1 1 1 23v3 t 40.703204 -74.011227 NaN 0.0 1183.795281 POLYGON ((981117.950 195489.006, 981146.234 195497.476, 981156.493 195457.812, 981130.371 195448... 1000070030
8 10 0007 0031 101 1000900 10009001015 9 1016 02 1 10004 L015 1 15 7700 1 01 1B 105 BROAD STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N K4 04 0 NaN FASHION MANAGEMENT CORP 1512 7475 4485 2990 1495 2990 0 0 0 0 2 1 5.0 2 5 36.17 46.67 36.0 44.0 N 3 Y 3 2 540000.0 823050.0 0.0 1883 0 0 Fraunces Tavern Block Historic District NaN 4.94 10.0 15.0 15.0 1 1.000070e+09 0 0009 981102 195461 12b NaN 101S002 10101 NaN 0.000000e+00 NaN 1 1 1 23v3 t 40.703172 -74.011354 NaN 0.0 1905.689626 POLYGON ((981130.371 195448.888, 981083.824 195432.986, 981079.817 195477.586, 981117.950 195489... 1000070031
9 10 0007 0033 101 1000900 10009001015 9 1016 02 1 10004 L015 1 15 7700 1 01 1B 101 BROAD STREET C5-5 NaN NaN NaN NaN NaN LM NaN NaN NaN N P7 08 0 NaN SONS OF THE REVOLUTION STATE OF NY 2180 6120 6120 0 0 2180 0 0 0 3940 2 1 3.0 0 3 34.92 69.75 34.0 69.0 N 3 Y 5 2 450000.0 1009800.0 656377.0 1854 0 0 Fraunces Tavern Block Historic District NaN 2.81 10.0 15.0 15.0 1 1.000070e+09 0 0009 981110 195505 12b NaN 101S002 10101 NaN 0.000000e+00 NaN 1 1 1 23v3 t 40.703292 -74.011325 NaN 0.0 2389.483990 POLYGON ((981143.982 195506.280, 981146.234 195497.476, 981117.950 195489.006, 981079.817 195477... 1000070033
#combine borough,block, and lot into a PArcel Identifier

nyc_mappluto['Block'] = nyc_mappluto['Block'].str.pad(width=4, fillchar='0')
nyc_mappluto['Lot'] = nyc_mappluto['Lot'].str.pad(width=4, fillchar='0')

#then concat
nyc_mappluto['Parcel_Identifier'] = nyc_mappluto['Borough'].str.cat([nyc_mappluto['Block'], nyc_mappluto['Lot']], sep='').astype(str)
#nyc_mappluto = nyc_mappluto.drop_duplicates(subset=["Address"])
nyc_mappluto.head(n=1)
Borough Block Lot CD BCT2020 BCTCB2020 CT2010 CB2010 SchoolDist Council ZipCode FireComp PolicePrct HealthCent HealthArea Sanitboro SanitDistr SanitSub Address ZoneDist1 ZoneDist2 ZoneDist3 ZoneDist4 Overlay1 Overlay2 SPDist1 SPDist2 SPDist3 LtdHeight SplitZone BldgClass LandUse Easements OwnerType OwnerName LotArea BldgArea ComArea ResArea OfficeArea RetailArea GarageArea StrgeArea FactryArea OtherArea AreaSource NumBldgs NumFloors UnitsRes UnitsTotal LotFront LotDepth BldgFront BldgDepth Ext ProxCode IrrLotCode LotType BsmtCode AssessLand AssessTot ExemptTot YearBuilt YearAlter1 YearAlter2 HistDist Landmark BuiltFAR ResidFAR CommFAR FacilFAR BoroCode BBL CondoNo Tract2010 XCoord YCoord ZoneMap ZMCode Sanborn TaxMap EDesigNum APPBBL APPDate PLUTOMapID FIRM07_FLA PFIRM15_FL Version DCPEdited Latitude Longitude Notes Shape_Leng Shape_Area geometry Parcel Identifier Parcel_Identifier
0 10 0002 0001 101 1000900 10009001022 9 1025 02 1 10004 L015 1 15 7700 1 01 1B 4 SOUTH STREET M1-4 NaN NaN NaN NaN NaN LM NaN NaN NaN N Y7 07 0 C NYC DEPARTMENT OF SMALL BUSINESS SERVICES 209215 280000 280000 0 0 0 0 0 0 280000 2 1 5.0 0 1 314.28 564.84 268.0 210.0 N 1 Y 2 0 18818100.0 31203000.0 31203000.0 1908 2006 2006 Individual Landmark NaN 1.34 0.0 2.0 6.5 1 1.000020e+09 0 0009 980670 194440 12b NaN 101N100 10101 NaN 1.000020e+09 08/07/2012 1 1 1 23v3 t 40.700369 -74.012911 NaN 0.0 100824.967451 POLYGON ((980609.551 194220.421, 980608.726 194221.934, 980606.237 194229.403, 980604.992 194235... 1000020001 1000020001
#laod in the Nehemiah propeties data

nehemiah_p = pd.read_csv(r"./data/Nehemiah/5. All Properties.csv", encoding='UTF-8')
nehemiah_p.head(n=20)
Project Address Parcel Identifier # of Units Year Developed Development Phase Borough State County
0 Nehemiah - East New York 94 Bentley Ave NO RESULTS FOUND NaN NaN Sold Brooklyn NY Kings
1 Nehemiah - East New York 577 Essex Street 40-4068-0017 1.0 1989.0 Sold Brooklyn NY Kings
2 Nehemiah - East New York 4323 Clarendon Rd. 30-4943-0014 NaN NaN Sold Brooklyn NY Kings
3 Nehemiah - Spring Creek 912 Erskine Street 30-4586-0977 NaN NaN Sold Brooklyn NY Kings
4 Nehemiah - Spring Creek 910 Erskine Street 30-4586-0976 NaN NaN Sold Brooklyn NY Kings
5 Nehemiah - Spring Creek 908 Erskine Street 30-4586-0975 NaN NaN Sold Brooklyn NY Kings
6 Nehemiah - Spring Creek 906 Erskine Street 30-4586-0974 NaN NaN Sold Brooklyn NY Kings
7 Nehemiah - Spring Creek 904 Erskine Street 30-4586-0973 NaN NaN Sold Brooklyn NY Kings
8 Nehemiah - Spring Creek 902 Erskine Street 30-4586-0972 NaN NaN Sold Brooklyn NY Kings
9 Nehemiah - Spring Creek 900 Erskine Street 30-4586-0971 NaN NaN Sold Brooklyn NY Kings
10 Nehemiah - Spring Creek 650 Schroeders Avenue 30-4586-0970 NaN NaN Sold Brooklyn NY Kings
11 Nehemiah - Spring Creek 648 Schroeders Avenue 30-4586-0969 NaN NaN Sold Brooklyn NY Kings
12 Nehemiah - Spring Creek 646 Schroeders Avenue 30-4586-0968 NaN NaN Sold Brooklyn NY Kings
13 Nehemiah - Spring Creek 644 Schroeders Avenue 30-4586-0967 NaN NaN Sold Brooklyn NY Kings
14 Nehemiah - Spring Creek 642 Schroeders Avenue 30-4586-0966 NaN NaN Sold Brooklyn NY Kings
15 Nehemiah - Spring Creek 640 Schroeders Avenue 30-4586-0965 NaN NaN Sold Brooklyn NY Kings
16 Nehemiah - Spring Creek 638 Schroeders Avenue 30-4586-0964 NaN NaN Sold Brooklyn NY Kings
17 Nehemiah - Spring Creek 636 Schroeders Avenue 30-4586-0963 NaN NaN Sold Brooklyn NY Kings
18 Nehemiah - Spring Creek 634 Schroeders Avenue 30-4586-0962 NaN NaN Sold Brooklyn NY Kings
19 Nehemiah - Spring Creek 632 Schroeders Avenue 30-4586-0961 NaN NaN Sold Brooklyn NY Kings
#edit Percel Identifier column to remove dashes and create unique identifier to merge with the mappluto
nehemiah_p["Parcel Identifier"] = nehemiah_p["Parcel Identifier"].str.replace("-","")

#capitaize address so it can match
nehemiah_p['Address'] = nehemiah_p['Address'].str.upper() 


len(nehemiah_p)
2195
#I had to add more data to the dataset. I wrangle it below

brownsville_prop = pd.read_csv(r"./Nehemiah_Brownsville_PropList - Sheet1.csv", encoding='UTF-8')

#create column that identifies properties as brownsville
brownsville_prop['Project'] = 'Nehemiah - Brownsville'
brownsville_prop['Borough'] = 'Brooklyn'
brownsville_prop['State'] = 'NY'
brownsville_prop['County'] = 'Kings'
brownsville_prop.head(n=20)

#correct MGB street
brownsville_prop['Address'] = brownsville_prop['Address'].replace('MGB', 'Mother Gaston', regex=True)

testrow = brownsville_prop.iloc[486]
print(testrow)
Address          Mother Gaston791
Project    Nehemiah - Brownsville
Borough                  Brooklyn
State                          NY
County                      Kings
Name: 486, dtype: object
print(len(brownsville_prop
         ))
1078
#another list of spring creek adds

spring_creek_adds = pd.read_csv(r'./Nehemiah Spring Creek_Unit BBL_10.17.23.csv')
spring_creek_adds.head(10)

# combine 'House #' and Address columns

def combine_columns(df):
    #Assuming df is your DataFrame
    df['Address'] = df['House #'].astype(str) + ' ' + df['Address'].astype(str)
    
    
    return df

spring_creek_adds = combine_columns(spring_creek_adds)

spring_creek_adds['Address'] = spring_creek_adds['Address'].astype(str)

print(len(spring_creek_adds))
spring_creek_adds.head(n=5)
71
Project Phase House # Address Block Lot Status
0 Nehemiah Spring Creek 4B-1 475 475 Vandalia Avenue 4452 290 Leased
1 Nehemiah Spring Creek 4B-1 479 479 Vandalia Avenue 4452 289 Leased
2 Nehemiah Spring Creek 4B-1 481 481 Vandalia Avenue 4452 288 Leased
3 Nehemiah Spring Creek 4B-1 483 483 Vandalia Avenue 4452 287 Leased
4 Nehemiah Spring Creek 4B-1 485 485 Vandalia Avenue 4452 286 Leased
#Create Parcel Identifier column for the above
spring_creek_adds['Block'] = spring_creek_adds['Block'].astype(str).str.pad(width=4, fillchar='0')
spring_creek_adds['Lot'] = spring_creek_adds['Lot'].astype(str).str.pad(width=4, fillchar='0')

spring_creek_adds["Parcel Identifier"] ='30' + spring_creek_adds['Block'] + spring_creek_adds['Lot']

spring_creek_adds.head(n=10)
Project Phase House # Address Block Lot Status Parcel Identifier
0 Nehemiah Spring Creek 4B-1 475 475 Vandalia Avenue 4452 0290 Leased 3044520290
1 Nehemiah Spring Creek 4B-1 479 479 Vandalia Avenue 4452 0289 Leased 3044520289
2 Nehemiah Spring Creek 4B-1 481 481 Vandalia Avenue 4452 0288 Leased 3044520288
3 Nehemiah Spring Creek 4B-1 483 483 Vandalia Avenue 4452 0287 Leased 3044520287
4 Nehemiah Spring Creek 4B-1 485 485 Vandalia Avenue 4452 0286 Leased 3044520286
5 Nehemiah Spring Creek 4B-1 487 487 Vandalia Avenue 4452 0285 Leased 3044520285
6 Nehemiah Spring Creek 4B-1 489 489 Vandalia Avenue 4452 0284 Leased 3044520284
7 Nehemiah Spring Creek 4B-1 491 491 Vandalia Avenue 4452 0283 Leased 3044520283
8 Nehemiah Spring Creek 4B-1 493 493 Vandalia Avenue 4452 0282 Leased 3044520282
9 Nehemiah Spring Creek 4B-1 495 495 Vandalia Avenue 4452 0281 Leased 3044520281
import pandas as pd
import re

def clean_address(s):
    if pd.isna(s):
        return ''
    
    # Function to remove extra spaces
    def remove_extra_spaces(s):
        return ' '.join(str(s).split())
    
    # Function to transform address like 'lopez2464' to '2464 Lopez'
    def transform_address(s):
        streetnumber = ''.join(filter(str.isdigit, s))
        streetname = ''.join(filter(lambda x: not x.isdigit(), s))
        return f'{streetnumber} {streetname}'.strip() if streetnumber and streetname else s
    
    # Function to split words like 'ThomasBoyland' to 'Thomas Boyland'
    def split_words(s):
        return re.sub(r'(?<=[a-z])(?=[A-Z])', ' ', s)
    
    # Function to expand common entry mistakes
    def expand_patterns(s):
        # Define patterns for full replacement
        patterns = {
            r'\b(?:[Aa][Vv][Ee]|[Aa][Vv][Ee]\.)\b': 'AVENUE',
            r'\b[Rr][Dd](?:\.)?\b': 'ROAD',
            r'\b[Dd][Rr](?:\.)?\b': 'DRIVE',
            r'\b[Ss][Tt](?:\.)?\b': 'STREET',
            r'\b[Bb][Ll][Vv][Dd](?:\.)?\b': 'BOULEVARD'
        }
        
        # Iterate over patterns and replace matches in the string
        for pattern, replacement in patterns.items():
            s = re.sub(pattern, replacement, s)
            
            s = re.sub(r'\b(\w+)\.\b', r'\1', s)
        
        return s
    
    # Apply each function in sequence
    s = transform_address(s)
    s = split_words(s)
    s = expand_patterns(s)
    s = remove_extra_spaces(s)
    
    return s
nehemiah_p['Address'] = nehemiah_p['Address'].apply(clean_address)
brownsville_prop['Address'] = brownsville_prop['Address'].apply(clean_address)
spring_creek_adds['Address'] = spring_creek_adds['Address'].apply(clean_address)

#upper case for mappluto merge

brownsville_prop['Address'] = brownsville_prop['Address'].str.upper()
nehemiah_p['Address'] = nehemiah_p['Address'].str.upper()
spring_creek_adds['Address'] = spring_creek_adds['Address'].str.upper()

spring_creek_adds['Address'] = spring_creek_adds['Address'].str.replace("-","")
brownsville_prop.head(n=10
                     )
Address Project Borough State County
0 195 CHESTER Nehemiah - Brownsville Brooklyn NY Kings
1 175 LEGION Nehemiah - Brownsville Brooklyn NY Kings
2 787 HOWARD Nehemiah - Brownsville Brooklyn NY Kings
3 159 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
4 161 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
5 163 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
6 165 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
7 167 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
8 169 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
9 171 AMBOY Nehemiah - Brownsville Brooklyn NY Kings
def tb_change(s):
    # Check if the pattern ' THOMAS BOYLAND' exists in the string
    if ' THOMAS BOYLAND' in s:
        # Replace the pattern with ' THOMAS S BOYLAND'
        s = s.replace(' THOMAS BOYLAND', ' THOMAS S BOYLAND')
    return s

# Assuming brownsville_prop is your DataFrame
brownsville_prop['Address'] = brownsville_prop['Address'].apply(tb_change)
# Create dictionary
street_suffix = {
    'LEGION': 'STREET',
    'SARATOGA': 'AVENUE',
    'SUTTER': 'AVENUE',
    'STRAUSS': 'STREET',
    'HOWARD': 'AVENUE',
    'GRAFTON': 'STREET',
    'DUMONT': 'AVENUE',
    'BLAKE': 'AVENUE',
    'HERZL': 'STREET',
    'AMBOY': 'STREET',
    'THOMAS S BOYLAND': 'ST',
    'BRISTOL': 'STREET',
    'CHESTER': 'STREET',
    'ROCKAWAY': 'AVENUE',
    'LIBERTY': 'AVENUE',
    'CHRISTOPHER': 'AVENUE',
    'WATKINS': 'STREET',
    'MOTHER GASTON': 'BLVD',
    'SACKMAN': 'STREET',
    'NEWPORT': 'STREET',
    'RIVERDALE': 'AVENUE',
    'POWELL': 'STREET',
    'JUNIUS': 'STREET',
    'LOTT': 'AVENUE',
    'NEW LOTS': 'AVENUE',
    'WILLIAMS': 'AVENUE',
    'PITKIN': 'AVENUE'
}

def append_suffix(address):
    # Compile regex patterns for each street name in the dictionary to identify them in the addresses
    patterns = {re.compile(r'\b' + re.escape(street) + r'\b', re.IGNORECASE): suffix
                for street, suffix in street_suffix.items()}

    # Check each pattern to see if it matches a part of the address
    for pattern, suffix in patterns.items():
        if pattern.search(address):
            # If a match is found, reconstruct the address with the suffix appended
            match = pattern.search(address)
            start, end = match.start(), match.end()
            # Reconstruct the address with the suffix added
            return address[:end] + ' ' + suffix + address[end:]
    
    # Return the original address if no matches are found
    return address

# Example usage on a DataFrame column
# Assuming brownsville_prop is a DataFrame with an 'Address' column.
# This will apply the function to each address in the DataFrame.

brownsville_prop['Address'] = brownsville_prop['Address'].apply(append_suffix)


# Example usage on a single string, assuming this will be applied to a DataFrame column
#example_address = '123 SARATOGA'
#modified_address = append_suffix(example_address)
#modified_address
spring_creek_adds.head(n=20)
Project Phase House # Address Block Lot Status Parcel Identifier
0 Nehemiah Spring Creek 4B-1 475 475 VANDALIA AVENUE 4452 0290 Leased 3044520290
1 Nehemiah Spring Creek 4B-1 479 479 VANDALIA AVENUE 4452 0289 Leased 3044520289
2 Nehemiah Spring Creek 4B-1 481 481 VANDALIA AVENUE 4452 0288 Leased 3044520288
3 Nehemiah Spring Creek 4B-1 483 483 VANDALIA AVENUE 4452 0287 Leased 3044520287
4 Nehemiah Spring Creek 4B-1 485 485 VANDALIA AVENUE 4452 0286 Leased 3044520286
5 Nehemiah Spring Creek 4B-1 487 487 VANDALIA AVENUE 4452 0285 Leased 3044520285
6 Nehemiah Spring Creek 4B-1 489 489 VANDALIA AVENUE 4452 0284 Leased 3044520284
7 Nehemiah Spring Creek 4B-1 491 491 VANDALIA AVENUE 4452 0283 Leased 3044520283
8 Nehemiah Spring Creek 4B-1 493 493 VANDALIA AVENUE 4452 0282 Leased 3044520282
9 Nehemiah Spring Creek 4B-1 495 495 VANDALIA AVENUE 4452 0281 Leased 3044520281
10 Nehemiah Spring Creek 4B-1 497 497 VANDALIA AVENUE 4452 0280 Leased 3044520280
11 Nehemiah Spring Creek 4B-1 494 494 VANDALIA AVENUE 4452 0441 Leased 3044520441
12 Nehemiah Spring Creek 4B-1 496 496 VANDALIA AVENUE 4452 0442 Leased 3044520442
13 Nehemiah Spring Creek 4B-1 498 498 VANDALIA AVENUE 4452 0443 Leased 3044520443
14 Nehemiah Spring Creek 4B-1 500 500 VANDALIA AVENUE 4452 0444 Leased 3044520444
15 Nehemiah Spring Creek 4B-1 502 502 VANDALIA AVENUE 4452 0445 Leased 3044520445
16 Nehemiah Spring Creek 4B-1 504 504 VANDALIA AVENUE 4452 0446 Leased 3044520446
17 Nehemiah Spring Creek 4B-1 506 506 VANDALIA AVENUE 4452 0447 Leased 3044520447
18 Nehemiah Spring Creek 4B-1 508 508 VANDALIA AVENUE 4452 0448 Leased 3044520448
19 Nehemiah Spring Creek 4B-1 510 510 VANDALIA AVENUE 4452 0449 Leased 3044520449
nehemiah_p.head(n=10)
Project Address Parcel Identifier # of Units Year Developed Development Phase Borough State County
0 Nehemiah - East New York 94 BENTLEY AVENUE NO RESULTS FOUND NaN NaN Sold Brooklyn NY Kings
1 Nehemiah - East New York 577 ESSEX STREET 4040680017 1.0 1989.0 Sold Brooklyn NY Kings
2 Nehemiah - East New York 4323 CLARENDON ROAD. 3049430014 NaN NaN Sold Brooklyn NY Kings
3 Nehemiah - Spring Creek 912 ERSKINE STREET 3045860977 NaN NaN Sold Brooklyn NY Kings
4 Nehemiah - Spring Creek 910 ERSKINE STREET 3045860976 NaN NaN Sold Brooklyn NY Kings
5 Nehemiah - Spring Creek 908 ERSKINE STREET 3045860975 NaN NaN Sold Brooklyn NY Kings
6 Nehemiah - Spring Creek 906 ERSKINE STREET 3045860974 NaN NaN Sold Brooklyn NY Kings
7 Nehemiah - Spring Creek 904 ERSKINE STREET 3045860973 NaN NaN Sold Brooklyn NY Kings
8 Nehemiah - Spring Creek 902 ERSKINE STREET 3045860972 NaN NaN Sold Brooklyn NY Kings
9 Nehemiah - Spring Creek 900 ERSKINE STREET 3045860971 NaN NaN Sold Brooklyn NY Kings
# Merge them in a way that it stacks them all, keeps project, address, and phase
all_np = pd.concat([nehemiah_p, brownsville_prop, spring_creek_adds], axis=0, ignore_index=True)
all_np.info()
all_np.tail(n=5)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3344 entries, 0 to 3343
Data columns (total 14 columns):
 #   Column             Non-Null Count  Dtype  
---  ------             --------------  -----  
 0   Project            3344 non-null   object 
 1   Address            3344 non-null   object 
 2   Parcel Identifier  1887 non-null   object 
 3   # of Units         1201 non-null   float64
 4   Year Developed     1173 non-null   float64
 5   Development Phase  2195 non-null   object 
 6   Borough            3273 non-null   object 
 7   State              3273 non-null   object 
 8   County             3273 non-null   object 
 9   Phase              71 non-null     object 
 10  House #            71 non-null     float64
 11  Block              71 non-null     object 
 12  Lot                71 non-null     object 
 13  Status             71 non-null     object 
dtypes: float64(3), object(11)
memory usage: 365.9+ KB
Project Address Parcel Identifier # of Units Year Developed Development Phase Borough State County Phase House # Block Lot Status
3339 Nehemiah Spring Creek 71 GATEWAY DRIVE 3044520237 NaN NaN NaN NaN NaN NaN 4C 71.0 4452 0237 In Construction
3340 Nehemiah Spring Creek 414 VANDALIA AVENUE 3044520249 NaN NaN NaN NaN NaN NaN 4C 414.0 4452 0249 In Construction
3341 Nehemiah Spring Creek 416 VANDALIA AVENUE 3044520250 NaN NaN NaN NaN NaN NaN 4C 416.0 4452 0250 In Construction
3342 Nehemiah Spring Creek 418 VANDALIA AVENUE 3044520251 NaN NaN NaN NaN NaN NaN 4C 418.0 4452 0251 In Construction
3343 Nehemiah Spring Creek 422 VANDALIA AVENUE 3044520252 NaN NaN NaN NaN NaN NaN 4C 422.0 4452 0252 In Construction
#looking at combined list
counts = all_np['Project'].value_counts()
print(len(all_np))
print(counts)
3344
Nehemiah - Brownsville      1079
Nehemiah - East New York    1050
Nehemiah - New Lots          690
Nehemiah - Spring Creek      452
Nehemiah Spring Creek         71
Nehemiah - South Bronx         2
Name: Project, dtype: int64
#more treatment

def treatment_two(s):
    # Remove the periods after 'STREET', 'AVENUE', or 'BOULEVARD'
    def remove_period(s):
        # Define a pattern to match 'STREET.', 'AVENUE.', or 'BOULEVARD.' at the end of the string
            pattern = r'(STREET|AVENUE|BOULEVARD)\.$'

        # Use regex to find matches
            match = re.search(pattern, s)

        # If a match is found, remove the period
            if match:
            # Replace the match with the group before the period (group 1) without the period
                s = s[:match.start(1) + len(match.group(1))]  # Keep everything before the group plus the group itself
    return s

    # Remove leading zeros
    def remove_leading_zeros_and_dash(s):
        # Use regex to remove leading zeros and dash from the string
        return re.sub(r'^(0+-)?\s*(\d+\s*-\s*)?', '', s)

    # Apply each function in sequence
    s = remove_leading_zeros_and_dash(s)
    s = remove_period(s)

    return s

all_np['Address'] = all_np['Address'].apply(treatment_two)
all_np['Address'] = all_np['Address'].str.replace('^0+', '')  # Remove leading zeros
all_np['Address'] = all_np['Address'].str.replace('-', '')  # Remove hyphens
C:\Users\Gabriel\AppData\Local\Temp\ipykernel_28236\4081018278.py:30: FutureWarning: The default value of regex will change from True to False in a future version.
  all_np['Address'] = all_np['Address'].str.replace('^0+', '')  # Remove leading zeros
# Convert the 'Address' column to a common data type in both datasets
all_np['Address'] = all_np['Address'].astype(str)
nyc_mappluto['Address'] = nyc_mappluto['Address'].astype(str)

# Perform the merge based on the 'Address' column
nehemiah_mappluto = all_np.merge(nyc_mappluto, how='left', on='Address')
nehemiah_mappluto= gpd.GeoDataFrame(nehemiah_mappluto, geometry='geometry')
nehemiah_mappluto.info()
<class 'geopandas.geodataframe.GeoDataFrame'>
Int64Index: 3368 entries, 0 to 3367
Columns: 110 entries, Project to Parcel_Identifier
dtypes: float64(50), geometry(1), object(59)
memory usage: 2.9+ MB

pID_merge =all_np.merge(nyc_mappluto, how='inner', left_on='Parcel Identifier', right_on='Parcel_Identifier')

pID_merge.head(n=10)

nhmappluto = nehemiah_mappluto.append(pID_merge, ignore_index=True)
C:\Users\Gabriel\AppData\Local\Temp\ipykernel_28236\474204601.py:5: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  nhmappluto = nehemiah_mappluto.append(pID_merge, ignore_index=True)
#total count of properties on the combined list
print(len(nehemiah_mappluto))
3368
#a geodataframe that uses the indicator geometry to note what in the nehemiah list did not merge with mappluto
nehemiah_mappluto_2 = nhmappluto[nhmappluto['geometry'].isnull()]
print(len(nehemiah_mappluto_2))

nehemiah_mappluto_2.head(n=81)
60
Project Address Parcel Identifier_x # of Units Year Developed Development Phase Borough_x State County Phase House # Block_x Lot_x Status Borough_y Block_y Lot_y CD BCT2020 BCTCB2020 CT2010 CB2010 SchoolDist Council ZipCode FireComp PolicePrct HealthCent HealthArea Sanitboro SanitDistr SanitSub ZoneDist1 ZoneDist2 ZoneDist3 ZoneDist4 Overlay1 Overlay2 SPDist1 SPDist2 SPDist3 LtdHeight SplitZone BldgClass LandUse Easements OwnerType OwnerName LotArea BldgArea ComArea ResArea OfficeArea RetailArea GarageArea StrgeArea FactryArea OtherArea AreaSource NumBldgs NumFloors UnitsRes UnitsTotal LotFront LotDepth BldgFront BldgDepth Ext ProxCode IrrLotCode LotType BsmtCode AssessLand AssessTot ExemptTot YearBuilt YearAlter1 YearAlter2 HistDist Landmark BuiltFAR ResidFAR CommFAR FacilFAR BoroCode BBL CondoNo Tract2010 XCoord YCoord ZoneMap ZMCode Sanborn TaxMap EDesigNum APPBBL APPDate PLUTOMapID FIRM07_FLA PFIRM15_FL Version DCPEdited Latitude Longitude Notes Shape_Leng Shape_Area geometry Parcel Identifier_y Parcel_Identifier Address_x Address_y
0 Nehemiah - East New York 94 BENTLEY AVENUE NO RESULTS FOUND NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2 Nehemiah - East New York 4323 CLARENDON ROAD. 3049430014 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
418 Nehemiah - Spring Creek 12498 FLATLANDS AVENUE 3044500132 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
419 Nehemiah - Spring Creek 12496 FLATLANDS AVENUE 3044500131 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
420 Nehemiah - Spring Creek 12494 FLATLANDS AVENUE 3044500130 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
421 Nehemiah - Spring Creek 12492 FLATLANDS AVENUE 3044500129 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
422 Nehemiah - Spring Creek 12490 FLATLANDS AVENUE 3044500128 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
423 Nehemiah - Spring Creek 12488 FLATLANDS AVENUE 3044500127 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
424 Nehemiah - Spring Creek 12486 FLATLANDS AVENUE 3044500126 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
425 Nehemiah - Spring Creek 12484 FLATLANDS AVENUE 3044500125 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
426 Nehemiah - Spring Creek 12482 FLATLANDS AVENUE 3044500124 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
427 Nehemiah - Spring Creek 12480 FLATLANDS AVENUE 3044500123 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
456 Nehemiah - New Lots 1819 LINDEN BOULEVARD. 3043180109 1.0 2001.0 Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1013 Nehemiah - East New York 469 ASFORD STREET 3040480019 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1058 Nehemiah - East New York 474 ASFORD STREET 3040470063 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1297 Nehemiah - East New York 215 BERRIMAN STREET. 3040220005 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1298 Nehemiah - East New York 217 BERRIMAN STREET. 3040220004 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1623 Nehemiah - East New York 386 BRADFORD STREET. 3037750132 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1661 Nehemiah - East New York 414 WYONA STREET. 3037740145 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1668 Nehemiah - East New York 441 VERMONT STREET. 3037740110 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1695 Nehemiah - East New York 418 VERMONT STREET. 3037730134 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1759 Nehemiah - East New York 381 VERMONT STREET. 3037570065 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1766 Nehemiah - East New York 395 VERMONT STREET. 3037570051 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1770 Nehemiah - East New York 403 VERMONT STREET. 3037570001 NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1814 Nehemiah - South Bronx 694 STREET. MARY STREET 3035720057 2.0 1999.0 Sold Bronx NY Bronx NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1816 Nehemiah - Spring Creek NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1829 Nehemiah - New Lots 1835 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1850 Nehemiah - New Lots 37 MALTA AVENUE NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1866 Nehemiah - New Lots 1813 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1879 Nehemiah - New Lots 1763 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1907 Nehemiah - New Lots 538 SHEFFIELD STREET NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1909 Nehemiah - New Lots 456 SHEFFIELD AVENUE NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1926 Nehemiah - New Lots 1823 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1932 Nehemiah - New Lots 1831 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1942 Nehemiah - New Lots 1829 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1957 Nehemiah - New Lots 399 HINSDALE STEET NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1965 Nehemiah - New Lots 1807 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
1983 Nehemiah - New Lots 1805 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2017 Nehemiah - New Lots 674 WILILAMS AVENUE NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2047 Nehemiah - New Lots 1835 A LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2052 Nehemiah - New Lots 1811 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2063 Nehemiah - New Lots 439 NEWPORT STREET NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2104 Nehemiah - New Lots 1817 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2105 Nehemiah - New Lots 663 ALABAMA AVEENUE NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2106 Nehemiah - New Lots 1825 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2143 Nehemiah - New Lots 592 ALABAMA AVENUE NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2153 Nehemiah - New Lots 442 HEGEMAN AVENUE NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2169 Nehemiah - New Lots 1761 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2191 Nehemiah - New Lots 1767 LINDEN BOULEVARD. NaN NaN NaN Sold Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2197 Nehemiah - Brownsville 175 LEGION STREET NaN NaN NaN NaN Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2394 Nehemiah - Brownsville 524 CHRISTOPHER AVENUE NaN NaN NaN NaN Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
2712 Nehemiah - Brownsville 855 MOTHER GASTON BLVD NaN NaN NaN NaN Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3205 Nehemiah - Brownsville 574 THOMAS S BOYLAND ST NaN NaN NaN NaN Brooklyn NY Kings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3349 Nehemiah Spring Creek 406 VANDALIA AVENUE 3044520204 NaN NaN NaN NaN NaN NaN 4C 406.0 4452 0204 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3350 Nehemiah Spring Creek 408 VANDALIA AVENUE 3044520205 NaN NaN NaN NaN NaN NaN 4C 408.0 4452 0205 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3351 Nehemiah Spring Creek 410 VANDALIA AVENUE 3044520206 NaN NaN NaN NaN NaN NaN 4C 410.0 4452 0206 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3352 Nehemiah Spring Creek 412 VANDALIA AVENUE 3044520207 NaN NaN NaN NaN NaN NaN 4C 412.0 4452 0207 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3353 Nehemiah Spring Creek 95 GATEWAY DRIVE 3044520226 NaN NaN NaN NaN NaN NaN 4C 95.0 4452 0226 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3364 Nehemiah Spring Creek 414 VANDALIA AVENUE 3044520249 NaN NaN NaN NaN NaN NaN 4C 414.0 4452 0249 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
3365 Nehemiah Spring Creek 416 VANDALIA AVENUE 3044520250 NaN NaN NaN NaN NaN NaN 4C 416.0 4452 0250 In Construction NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None NaN NaN NaN NaN
#it keeps the rows still so when we drop the geometry we lose 1180 rows from the object, resulting in 2583 rows
#of the remaining, some merged on the address, but the lot is in another borough. PArcel identifier is more attractive
#NA Values cannot be in geometry for folium to work
# drops geometry NA to put folium-ready object
nhmappluto = nhmappluto.dropna(subset=['geometry'])
print(len(nhmappluto))
5153
#the purpose of this is to remove duplicate addresses in other borouhs that were showing up??? 
#Sort the DataFrame so that 'BK' values in 'Borough' come first for each 'Address' - this impacts the 'keep' argument in the drop duplicates section 
nhmappluto_sorted = nhmappluto.sort_values(by=['Address', 'Borough_x'], ascending=[True, False])

# Mark all duplicates as True, including the first occurrence
marks = nhmappluto_sorted.duplicated(subset='Address', keep=False)

# Filter the original DataFrame to only include rows that are marked as duplicates
all_duplicates = nhmappluto_sorted[marks]

print(len(all_duplicates))
#there are 16
1911
# Drop duplicates based on the 'Address' column, keeping the first occurrence (Brooklyn)
#this is based on previous work with NYCMapplutoData 

nhmappluto = nhmappluto_sorted.drop_duplicates(subset='Address', keep='first')
print(len(nhmappluto))
3276
#Interactive Map
#040224 - 2156 parcels
#041224 - 3276 parcels
nhmappluto.explore()
Make this Notebook Trusted to load map: File -> Trust Notebook
# Specify the output directory where you want to save the shapefile
output_directory = r'C:\Users\Gabriel\Desktop\PYTHON FINAL\data\Final Map'

# Create the output directory if it doesn't exist
os.makedirs(output_directory, exist_ok=True)

# Specify the output shapefile path
output_shapefile = os.path.join(output_directory, 'nhmappluto.shp')

# Save the GeoPandas DataFrame as a shapefile
nhmappluto.to_file(output_shapefile)
C:\Users\Gabriel\AppData\Local\Temp\ipykernel_28236\3354178473.py:11: UserWarning: Column names longer than 10 characters will be truncated when saved to ESRI Shapefile.
  nhmappluto.to_file(output_shapefile)